printf()函数中\t,水平制表符,空格的个数

您所在的位置:网站首页 制表符/t printf()函数中\t,水平制表符,空格的个数

printf()函数中\t,水平制表符,空格的个数

2023-05-27 16:37| 来源: 网络整理| 查看: 265

在控制台输出数据的时候,也就是用printf()的时候,我们经常用\t来控制对齐,以使输出的结果更加整齐美观。

然而有时候我们发现及时使用了\t 也会出现数据对不齐的情况,这就跟\t究竟对应几个空格有关系。

先给出程序和运行结果,再进行解释。

代码:

#include #include int main(int argc,char* argv) { printf("123456\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("1234567\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("12345678\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("123456789\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("123456781234\t123\t45\n"); printf("12\t123456\t78\n"); return 0; }

运行结果:

可以看到,出现了数据不能对其的情况。我们发现\t对应的空格的次数是不固定的,并不是我们所认为的4个空格或8个空格。

那么有什么规律呢。给个简单的公式  :

令  num = |n-8|%8, 其中n表示\t前面的字符占的位置(前面的字符也可能是转换说明,如%d,%10d等)。

那么\t对应的空格的个数 spaceNum,有

所以我们看到当\t前面为123456时,后面有两个空格;当\t前面为1234567时,后面有1个空格,而当前面正好为12345678时,后面跟8个空格

当前面为123456781234时,后面的空格数量为  |12-8|%8=4

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3